home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2001 May / SGI Freeware 2001 May - Disc 1.iso / dist / patchSG0003743.idb / usr / include / cray / fmtconv.h.z / fmtconv.h
C/C++ Source or Header  |  2001-04-12  |  3KB  |  99 lines

  1. /* USMID @(#) clibinc/cray/fmtconv.h    92.2    06/18/99 10:01:22 */
  2.  
  3. /*
  4.  *    (C) COPYRIGHT CRAY RESEARCH, INC.
  5.  *    UNPUBLISHED PROPRIETARY INFORMATION.
  6.  *    ALL RIGHTS RESERVED.
  7.  */
  8.  
  9. #ifndef    _CRAY_FMTCONV_H
  10. #define    _CRAY_FMTCONV_H
  11.  
  12. #ifndef    NULL
  13. #  define    NULL    0
  14. #endif
  15.  
  16. /* Repeatable edit-descriptor types */
  17.  
  18. #define    TYNN    0    /* Nonnumeric type edit descriptor    */
  19. #define    TYIN    1    /* Integer type edit descriptor        */
  20. #define    TYUI    2    /* Unsigned integer type edit descriptor*/
  21. #define    TYFP    3    /* Floating-point type edit descriptor    */
  22.  
  23. /* Input and Output Conversion Mode Bits */
  24.  
  25. #define    MODEDP    004    /* Double-precision flag        */
  26. #define    MODEHP    020    /* Half-precision (32-bit) flag        */
  27. #if    defined(__mips) || defined(_LITTLE_ENDIAN)
  28. #define    MODEWP    040    /* 2-byte-precision (16-bit) flag    */
  29. #define    MODEBP    0100    /* 1-byte-precision (8-bit) flag    */
  30. #endif
  31.  
  32. /* Input Conversion Mode Bits */
  33.  
  34. #define    MODEBN    001    /* Blanks treated as nulls (ignored)    */
  35. #define    MODEBZ    002    /* Blanks treated as zeroes        */
  36.  
  37. /* Output Conversion Mode Bits */
  38.  
  39. #define    MODESN    001    /* Numeric sign required flag        */
  40. #define    MODEUN    002    /* Unsigned datum flag            */
  41. #define    MODE77    010    /* Fortran 77 conformance flag        */
  42. #define    MODEMSN    0200    /* Minus sign written for -0.0        */
  43.  
  44. /* Input conversion exit values */
  45.  
  46. #if    defined(__mips) || defined(_LITTLE_ENDIAN)
  47. #define EX_INT8        7    /* Signed 1-byte integer    */
  48. #define EX_INT16    6    /* Signed 2-byte integer    */
  49. #endif
  50. #define EX_REAL32    5    /* 32-bit real            */
  51. #define EX_REAL128    4    /* 128-bit real            */
  52. #define EX_REAL64    3    /* 64-bit real            */
  53. #define EX_INTL        2    /* Signed large integer (S-reg)    */
  54. #define EX_INTS        1    /* Signed small integer (A-reg)    */
  55. #define EX_ILLCHAR    -1    /* invalid character        */
  56. #define EX_FIXOFLO    -2    /* fixed-point overflow        */
  57. #define EX_EXPUFLO    -3    /* floating-point underflow    */
  58. #define EX_EXPOFLO    -4    /* floating-point overflow    */
  59. #define EX_NULLFLD    -5    /* null field (no digits)    */
  60. #define EX_INVLOGI    -10    /* reserved for libf (logical)    */
  61.  
  62.  
  63. /*
  64.  * Define typedefs for generic declarations of the input and output
  65.  * conversion routines.
  66.  */
  67.  
  68. typedef int ic_func   ( const long *_Fca, const long *_Width, long **_Lcap1,
  69.             const long *_Mode, void *_Result, long *_Statval,
  70.             const long *_Digits, const long *_Scale);
  71.  
  72. typedef long *oc_func ( const void *_Value, long *_Fca,
  73.             const long *_Mode, const long *_Width,
  74.             const long *_Digits, const long *_Exp,
  75.             const long *_Scale);
  76.  
  77. /* Input conversion routines */
  78.  
  79. extern ic_func    _bu2s;        /* Binary Unpacked to Single word    */
  80. extern ic_func    _defgu2sd;    /* Floating-point (D,E,F,G) Unpacked to
  81.                    Single or Double word        */
  82. extern ic_func    _iu2s;        /* Integer Unpacked to Single word    */
  83. extern ic_func    _ou2s;        /* Octal Unpacked to Single word    */
  84. extern ic_func    _zu2s;        /* Hexadecimal Unpacked to Single word    */
  85.  
  86. /* Output conversion routines */
  87.  
  88. extern oc_func    _s2ub;        /* Single word to Unpacked Binary    */
  89. extern oc_func    _s2ui;        /* Single word to Unpacked Integer    */
  90. extern oc_func    _s2uo;        /* Single word to Unpacked Octal    */
  91. extern oc_func    _s2uz;        /* Single word to Unpacked Hexadecimal    */
  92. extern oc_func    _sd2udee;    /* Single/Double word to Unpacked D/E    */
  93. extern oc_func    _sd2uene;    /* Single/Double word to Unpacked EN    */
  94. extern oc_func    _sd2uese;    /* Single/Double word to Unpacked ES    */
  95. extern oc_func    _sd2uf;        /* Single/Double word to Unpacked F    */
  96. extern oc_func    _sd2uge;    /* Single/Double word to Unpacked G    */
  97.  
  98. #endif /* !_CRAY_FMTCONV_H */
  99.